#!/usr/bin/python
# -*- coding: utf-8 -*-

## service description

## error class for exception appending during service initialization
class ServiceInitError(RuntimeError):
    pass

## services base class
class Service(object):
    def __init__(self, service_name):
        self.name = service_name    

##  "cron" type services base class
class CronService(Service):
    ## service code execution 
    def execute(self):
        pass

## web services base class
class WebService(Service):
    pass

## error class for slot get method
class SlotGetError(RuntimeError):
    pass

## error class for slot delete method
class SlotDeleteError(RuntimeError):
    pass

## slot base class
class Slot(Service):
    pass

## input slot interface
class InputSlot(Slot):
    # get objects available from the slot
    def get_objects(self):
        pass
    
    # get one object from the slot
    def get_object(self, object_id):
        pass
    
    # delete one object on the slot
    def delete_object(self, object_id):
        pass
    
# output slot interface
class OutputSlot(Slot):
    # put one object on the slot
    def put_object(self):
        pass